﻿// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

using Admin.NET.Plugin.Easy.Wms.Enum.InAndOutStorage;
using Admin.NET.Plugin.Easy.Wms.Enum.InAndOutStorageType;
using System.ComponentModel.DataAnnotations;

namespace Admin.NET.Plugin.Easy.Wms.Entity;

/// <summary>
/// 出入库记录实体
/// </summary>
[SugarTable("Easy_Wms_InAndOutStorage")]
public class Easy_Wms_InAndOutStorageEntity : EntityTenantBaseData
{
    /// <summary>
    /// 出入库单据
    /// </summary>
    [Required(ErrorMessage = "出入库编号不能为空")]
    [SugarColumn(ColumnDescription = "出入库编号")]
    public string InAndOutStorage_Num { get; set; }

    /// <summary>
    /// 出入库地址
    /// </summary>
    [SugarColumn(ColumnDescription = "出入库地址")]
    public string? InAndOutStorage_Address { get; set; }

    /// <summary>
    /// 出入库类型（0-入库，1-出库）
    /// </summary>
    [SugarColumn(ColumnDescription = "出入库类型")]
    public InAndOutStorageTypeEnum InAndOutStorage_Type { get; set; }

    /// <summary>
    /// 出入库状态（出入库状态（0-未入库，1-已入库，2-未出库，3-已出库，4-入库中，5-出库中）
    /// </summary>
    /// TODO:设置默认值，可以根据编码设置，哪种类型的出库还是入库的
    [SugarColumn(ColumnDescription = "出入库状态")]
    public InAndOutStorageStatusEnum InAndOutStorage_Status { get; set; }

    /// <summary>
    /// 是否成功（0-成功，1-失败）
    /// </summary>
    [SugarColumn(ColumnDescription = "是否成功（0-成功，1-失败）")]
    public int? InAndOutStorage_SuccessOrNot { get; set; }

    /// <summary>
    /// 出入库数量
    /// </summary>
    [SugarColumn(ColumnDescription = "出入库数量")]
    public int? InAndOutStorage_SumCount { get; set; }

    /// <summary>
    /// 出入库时间
    /// </summary>
    [SugarColumn(ColumnDescription = "出入库时间")]
    public DateTime? InAndOutStorage_DateTime { get; set; }

    /// <summary>
    /// 出入库备注
    /// </summary>
    [SugarColumn(ColumnDescription = "出入库备注")]
    public string? InAndOutStorage_Remark { get; set; }

}
